package com.wenchao.quickstart.utils;

import android.util.Log;


import com.wenchao.quickstart.BuildConfig;

import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;

/**
 * 日志工具类
 *
 * @author zhangwenchao
 */
public class LogUtil {

    private static final String TAG = "hjly";
    public static boolean isOpen = true;

    private LogUtil() {
        throw new UnsupportedOperationException("cannot be instantiated");
    }

    public static void d(String msg) {
        if (isOpen && BuildConfig.DEBUG) {
            d(TAG, msg);
        }
    }

    public static void e(String msg) {
        if (isOpen && BuildConfig.DEBUG) {
            e(TAG, msg);
        }
    }

    public static void d(String tag, String msg) {
        if (isOpen && BuildConfig.DEBUG) {
            Log.d(tag, msg);
        }
    }

    public static void e(String tag, String msg) {
        if (isOpen && BuildConfig.DEBUG) {
            Log.e(tag, msg);
        }
    }

    public static final String LINE_SEPARATOR = System.getProperty("line.separator");

    public static void printJson(String msg, String headString) {
        String message;
        try {
            if (msg.startsWith("{")) {
                JSONObject jsonObject = new JSONObject(msg);
                //最重要的方法，就一行，返回格式化的json字符串，其中的数字4是缩进字符数
                // replace("\\", "") 解决自动转义斜杠的问题
                message = jsonObject.toString(4).replace("\\", "");
            } else if (msg.startsWith("[")) {
                JSONArray jsonArray = new JSONArray(msg);
                message = jsonArray.toString(4).replace("\\", "");
            } else {
                message = msg;
            }
        } catch (JSONException e) {
            message = msg;
        }
        printLine(true);
        message = headString + LINE_SEPARATOR + message;
        String[] lines = message.split(LINE_SEPARATOR);
        for (String line : lines) {
            d("║ " + line);
        }
        printLine(false);
    }

    public static void printLine(boolean isTop) {
        if (isTop) {
            d("╔═══════════════════════════════════════════════════════════════════════════════════════");
        } else {
            d("╚═══════════════════════════════════════════════════════════════════════════════════════");
        }
    }

}
